[INFO] cloning repository https://github.com/matt-meridian7/m7-lantern-code
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/matt-meridian7/m7-lantern-code" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fmatt-meridian7%2Fm7-lantern-code", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fmatt-meridian7%2Fm7-lantern-code'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 901d2b798bf6fcc96d6525317738fbbfbaadde5b
[INFO] testing matt-meridian7/m7-lantern-code against master#cced03bfd61a304243a34504618ecec86c17063f for pr-154065-2
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fmatt-meridian7%2Fm7-lantern-code" "/workspace/builds/worker-1-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-1-tc1/source'...
[INFO] [stderr] done.
[INFO] [stderr] Updating files:  26% (3385/12607)
Updating files:  27% (3404/12607)
Updating files:  28% (3530/12607)
Updating files:  29% (3657/12607)
Updating files:  30% (3783/12607)
Updating files:  31% (3909/12607)
Updating files:  32% (4035/12607)
Updating files:  33% (4161/12607)
Updating files:  34% (4287/12607)
Updating files:  34% (4344/12607)
Updating files:  35% (4413/12607)
Updating files:  36% (4539/12607)
Updating files:  37% (4665/12607)
Updating files:  38% (4791/12607)
Updating files:  39% (4917/12607)
Updating files:  40% (5043/12607)
Updating files:  41% (5169/12607)
Updating files:  41% (5243/12607)
Updating files:  42% (5295/12607)
Updating files:  43% (5422/12607)
Updating files:  44% (5548/12607)
Updating files:  45% (5674/12607)
Updating files:  46% (5800/12607)
Updating files:  47% (5926/12607)
Updating files:  47% (6023/12607)
Updating files:  48% (6052/12607)
Updating files:  49% (6178/12607)
Updating files:  50% (6304/12607)
Updating files:  51% (6430/12607)
Updating files:  52% (6556/12607)
Updating files:  53% (6682/12607)
Updating files:  54% (6808/12607)
Updating files:  55% (6934/12607)
Updating files:  55% (6974/12607)
Updating files:  56% (7060/12607)
Updating files:  57% (7186/12607)
Updating files:  57% (7282/12607)
Updating files:  58% (7313/12607)
Updating files:  58% (7418/12607)
Updating files:  59% (7439/12607)
Updating files:  60% (7565/12607)
Updating files:  60% (7614/12607)
Updating files:  61% (7691/12607)
Updating files:  61% (7759/12607)
Updating files:  61% (7804/12607)
Updating files:  62% (7817/12607)
Updating files:  62% (7888/12607)
Updating files:  63% (7943/12607)
Updating files:  64% (8069/12607)
Updating files:  65% (8195/12607)
Updating files:  66% (8321/12607)
Updating files:  66% (8339/12607)
Updating files:  67% (8447/12607)
Updating files:  68% (8573/12607)
Updating files:  69% (8699/12607)
Updating files:  70% (8825/12607)
Updating files:  70% (8940/12607)
Updating files:  71% (8951/12607)
Updating files:  72% (9078/12607)
Updating files:  73% (9204/12607)
Updating files:  74% (9330/12607)
Updating files:  74% (9432/12607)
Updating files:  75% (9456/12607)
Updating files:  76% (9582/12607)
Updating files:  77% (9708/12607)
Updating files:  78% (9834/12607)
Updating files:  78% (9880/12607)
Updating files:  79% (9960/12607)
Updating files:  80% (10086/12607)
Updating files:  81% (10212/12607)
Updating files:  81% (10247/12607)
Updating files:  82% (10338/12607)
Updating files:  83% (10464/12607)
Updating files:  84% (10590/12607)
Updating files:  85% (10716/12607)
Updating files:  86% (10843/12607)
Updating files:  87% (10969/12607)
Updating files:  88% (11095/12607)
Updating files:  89% (11221/12607)
Updating files:  90% (11347/12607)
Updating files:  91% (11473/12607)
Updating files:  92% (11599/12607)
Updating files:  93% (11725/12607)
Updating files:  94% (11851/12607)
Updating files:  95% (11977/12607)
Updating files:  95% (12056/12607)
Updating files:  96% (12103/12607)
Updating files:  97% (12229/12607)
Updating files:  97% (12266/12607)
Updating files:  98% (12355/12607)
Updating files:  98% (12407/12607)
Updating files:  99% (12481/12607)
Updating files: 100% (12607/12607)
Updating files: 100% (12607/12607), done.
[INFO] started tweaking git repo https://github.com/matt-meridian7/m7-lantern-code
[INFO] finished tweaking git repo https://github.com/matt-meridian7/m7-lantern-code
[INFO] tweaked toml for git repo https://github.com/matt-meridian7/m7-lantern-code written to /workspace/builds/worker-1-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/matt-meridian7/m7-lantern-code on toolchain cced03bfd61a304243a34504618ecec86c17063f
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+cced03bfd61a304243a34504618ecec86c17063f" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/matt-meridian7/m7-lantern-code already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+cced03bfd61a304243a34504618ecec86c17063f" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded pin-project v1.1.13
[INFO] [stderr]   Downloaded tonic v0.12.3
[INFO] [stderr]   Downloaded pin-project-internal v1.1.13
[INFO] [stderr]   Downloaded hostname v0.4.2
[INFO] [stderr]   Downloaded dashmap v6.2.1
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+cced03bfd61a304243a34504618ecec86c17063f" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 57842d8ab3524489e281f48fa45fba61d9c37fa8131baf5bd4f2c9e50dc7f5ea
[INFO] running `Command { std: "docker" "start" "-a" "57842d8ab3524489e281f48fa45fba61d9c37fa8131baf5bd4f2c9e50dc7f5ea", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "57842d8ab3524489e281f48fa45fba61d9c37fa8131baf5bd4f2c9e50dc7f5ea", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "57842d8ab3524489e281f48fa45fba61d9c37fa8131baf5bd4f2c9e50dc7f5ea", kill_on_drop: false }`
[INFO] [stdout] 57842d8ab3524489e281f48fa45fba61d9c37fa8131baf5bd4f2c9e50dc7f5ea
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+cced03bfd61a304243a34504618ecec86c17063f" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 984e1caf2b3fade58d064db33fd8404a6e5781cb266d0310fd63e075922f4e94
[INFO] running `Command { std: "docker" "start" "-a" "984e1caf2b3fade58d064db33fd8404a6e5781cb266d0310fd63e075922f4e94", kill_on_drop: false }`
[INFO] [stderr]    Compiling serde_core v1.0.228
[INFO] [stderr]    Compiling typenum v1.20.0
[INFO] [stderr]    Compiling mio v1.2.0
[INFO] [stderr]    Compiling futures-util v0.3.32
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]    Compiling crossbeam-utils v0.8.21
[INFO] [stderr]    Compiling cc v1.2.62
[INFO] [stderr]    Compiling base64 v0.22.1
[INFO] [stderr]    Compiling indexmap v1.9.3
[INFO] [stderr]    Compiling futures-intrusive v0.5.0
[INFO] [stderr]    Compiling pin-project-internal v1.1.13
[INFO] [stderr]    Compiling rand v0.8.6
[INFO] [stderr]    Compiling matchit v0.7.3
[INFO] [stderr]    Compiling dirs-sys v0.4.1
[INFO] [stderr]    Compiling tokio v1.52.3
[INFO] [stderr]    Compiling concurrent-queue v2.5.0
[INFO] [stderr]    Compiling crossbeam-queue v0.3.12
[INFO] [stderr]    Compiling event-listener v5.4.1
[INFO] [stderr]    Compiling getrandom v0.4.2
[INFO] [stderr]    Compiling clap_derive v4.6.1
[INFO] [stderr]    Compiling socket2 v0.5.10
[INFO] [stderr]    Compiling prost v0.13.5
[INFO] [stderr]    Compiling hashbrown v0.14.5
[INFO] [stderr]    Compiling generic-array v0.14.7
[INFO] [stderr]    Compiling chrono v0.4.44
[INFO] [stderr]    Compiling atoi v2.0.0
[INFO] [stderr]    Compiling dirs v5.0.1
[INFO] [stderr]    Compiling hostname v0.4.2
[INFO] [stderr]    Compiling pin-project v1.1.13
[INFO] [stderr]    Compiling libsqlite3-sys v0.30.1
[INFO] [stderr]    Compiling block-buffer v0.10.4
[INFO] [stderr]    Compiling crypto-common v0.1.7
[INFO] [stderr]    Compiling dashmap v6.2.1
[INFO] [stderr]    Compiling digest v0.10.7
[INFO] [stderr]    Compiling sha2 v0.10.9
[INFO] [stderr]    Compiling clap v4.6.1
[INFO] [stderr]    Compiling serde v1.0.228
[INFO] [stderr]    Compiling serde_json v1.0.150
[INFO] [stderr]    Compiling uuid v1.23.1
[INFO] [stderr]    Compiling tower v0.5.3
[INFO] [stderr]    Compiling futures-executor v0.3.32
[INFO] [stderr]    Compiling axum-core v0.4.5
[INFO] [stderr]    Compiling either v1.16.0
[INFO] [stderr]    Compiling serde_urlencoded v0.7.1
[INFO] [stderr]    Compiling toml_datetime v0.6.11
[INFO] [stderr]    Compiling serde_spanned v0.6.9
[INFO] [stderr]    Compiling toml_edit v0.22.27
[INFO] [stderr]    Compiling tokio-stream v0.1.18
[INFO] [stderr]    Compiling toml v0.8.23
[INFO] [stderr]    Compiling axum v0.7.9
[INFO] [stderr]    Compiling sqlx-core v0.8.6
[INFO] [stderr]    Compiling tokio-util v0.7.18
[INFO] [stderr]    Compiling h2 v0.4.14
[INFO] [stderr]    Compiling tower v0.4.13
[INFO] [stderr]    Compiling sqlx-sqlite v0.8.6
[INFO] [stderr]    Compiling hyper v1.9.0
[INFO] [stderr]    Compiling sqlx-macros-core v0.8.6
[INFO] [stderr]    Compiling hyper-util v0.1.20
[INFO] [stderr]    Compiling sqlx-macros v0.8.6
[INFO] [stderr]    Compiling sqlx v0.8.6
[INFO] [stderr]    Compiling hyper-timeout v0.5.2
[INFO] [stderr]    Compiling tonic v0.12.3
[INFO] [stderr]    Compiling lantern v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused imports: `DeliverResult`, `TranscriptResult`, and `ValidationResult`
[INFO] [stdout]  --> src/temporal/mod.rs:6:22
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub use activities::{DeliverResult, TranscriptResult, ValidationResult};
[INFO] [stdout]   |                      ^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `client::TemporalGrpcClient`
[INFO] [stdout]  --> src/temporal/mod.rs:7:9
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub use client::TemporalGrpcClient;
[INFO] [stdout]   |         ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `error`
[INFO] [stdout]   --> src/temporal/mod.rs:11:15
[INFO] [stdout]    |
[INFO] [stdout] 11 | use tracing::{error, info};
[INFO] [stdout]    |               ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `AgentQueues` and `QueueManager`
[INFO] [stdout]  --> src/queue/mod.rs:5:19
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub use manager::{AgentQueues, QueueManager};
[INFO] [stdout]   |                   ^^^^^^^^^^^  ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `priority::compare_priority`
[INFO] [stdout]  --> src/queue/mod.rs:6:9
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub use priority::compare_priority;
[INFO] [stdout]   |         ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `scheduler::Scheduler`
[INFO] [stdout]  --> src/queue/mod.rs:7:9
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub use scheduler::Scheduler;
[INFO] [stdout]   |         ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/temporal/mod.rs:19:5
[INFO] [stdout]    |
[INFO] [stdout] 19 |     mut shutdown: tokio::sync::watch::Receiver<bool>,
[INFO] [stdout]    |     ----^^^^^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `AgentStatus` is never used
[INFO] [stdout]  --> src/types.rs:7:10
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub enum AgentStatus {
[INFO] [stdout]   |          ^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `WorkItemStatus` is never used
[INFO] [stdout]   --> src/types.rs:30:10
[INFO] [stdout]    |
[INFO] [stdout] 30 | pub enum WorkItemStatus {
[INFO] [stdout]    |          ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `AgentLoad` is never constructed
[INFO] [stdout]    --> src/types.rs:177:12
[INFO] [stdout]     |
[INFO] [stdout] 177 | pub struct AgentLoad {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `insert_lease` is never used
[INFO] [stdout]   --> src/db/queries.rs:83:14
[INFO] [stdout]    |
[INFO] [stdout] 83 | pub async fn insert_lease(pool: &SqlitePool, lease: &Lease) -> anyhow::Result<()> {
[INFO] [stdout]    |              ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_active_work_for_agent` is never used
[INFO] [stdout]    --> src/db/queries.rs:204:14
[INFO] [stdout]     |
[INFO] [stdout] 204 | pub async fn get_active_work_for_agent(pool: &SqlitePool, agent_id: &str) -> anyhow::Result<Vec<WorkItem>> {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SignalWorkflowExecutionRequest` is never constructed
[INFO] [stdout]    --> src/temporal/client.rs:138:12
[INFO] [stdout]     |
[INFO] [stdout] 138 | pub struct SignalWorkflowExecutionRequest {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SignalWorkflowExecutionResponse` is never constructed
[INFO] [stdout]    --> src/temporal/client.rs:147:12
[INFO] [stdout]     |
[INFO] [stdout] 147 | pub struct SignalWorkflowExecutionResponse {}
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `signal_workflow_execution` is never used
[INFO] [stdout]    --> src/temporal/client.rs:214:18
[INFO] [stdout]     |
[INFO] [stdout] 157 | impl TemporalGrpcClient {
[INFO] [stdout]     | ----------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 214 |     pub async fn signal_workflow_execution(
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `workflow_id_for_session` is never used
[INFO] [stdout]  --> src/temporal/signals.rs:9:4
[INFO] [stdout]   |
[INFO] [stdout] 9 | fn workflow_id_for_session(session_id: &str) -> String {
[INFO] [stdout]   |    ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `send_signal` is never used
[INFO] [stdout]   --> src/temporal/signals.rs:13:10
[INFO] [stdout]    |
[INFO] [stdout] 13 | async fn send_signal(
[INFO] [stdout]    |          ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `signal_assignment_acked` is never used
[INFO] [stdout]   --> src/temporal/signals.rs:40:14
[INFO] [stdout]    |
[INFO] [stdout] 40 | pub async fn signal_assignment_acked(
[INFO] [stdout]    |              ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `signal_assignment_completed` is never used
[INFO] [stdout]   --> src/temporal/signals.rs:57:14
[INFO] [stdout]    |
[INFO] [stdout] 57 | pub async fn signal_assignment_completed(
[INFO] [stdout]    |              ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `signal_assignment_blocked` is never used
[INFO] [stdout]   --> src/temporal/signals.rs:74:14
[INFO] [stdout]    |
[INFO] [stdout] 74 | pub async fn signal_assignment_blocked(
[INFO] [stdout]    |              ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `signal_assignment_stale` is never used
[INFO] [stdout]   --> src/temporal/signals.rs:91:14
[INFO] [stdout]    |
[INFO] [stdout] 91 | pub async fn signal_assignment_stale(
[INFO] [stdout]    |              ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `signal_agent_recovered` is never used
[INFO] [stdout]    --> src/temporal/signals.rs:108:14
[INFO] [stdout]     |
[INFO] [stdout] 108 | pub async fn signal_agent_recovered(
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `kill_session` is never used
[INFO] [stdout]   --> src/tmux/session.rs:25:14
[INFO] [stdout]    |
[INFO] [stdout] 25 | pub async fn kill_session(name: &str) -> Result<()> {
[INFO] [stdout]    |              ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `capture_pane` is never used
[INFO] [stdout]    --> src/tmux/pane.rs:115:14
[INFO] [stdout]     |
[INFO] [stdout] 115 | pub async fn capture_pane(pane_id: &str) -> Result<String> {
[INFO] [stdout]     |              ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `create_squad_layout` is never used
[INFO] [stdout]   --> src/tmux/layout.rs:14:14
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub async fn create_squad_layout(
[INFO] [stdout]    |              ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `split_pane` is never used
[INFO] [stdout]    --> src/tmux/layout.rs:122:10
[INFO] [stdout]     |
[INFO] [stdout] 122 | async fn split_pane(pane_id: &str, direction: &str, percent: Option<u8>) -> Result<String> {
[INFO] [stdout]     |          ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `DeliveryOrchestrator` is never constructed
[INFO] [stdout]   --> src/delivery/mod.rs:21:12
[INFO] [stdout]    |
[INFO] [stdout] 21 | pub struct DeliveryOrchestrator {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `deliver` are never used
[INFO] [stdout]   --> src/delivery/mod.rs:26:12
[INFO] [stdout]    |
[INFO] [stdout] 25 | impl DeliveryOrchestrator {
[INFO] [stdout]    | ------------------------- associated items in this implementation
[INFO] [stdout] 26 |     pub fn new(pool: SqlitePool) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 30 |     pub async fn deliver(&self, assignment: &Assignment, agent: &Agent) -> anyhow::Result<()> {
[INFO] [stdout]    |                  ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `persist_assignment` is never used
[INFO] [stdout]  --> src/delivery/persist.rs:7:14
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub async fn persist_assignment(pool: &SqlitePool, assignment: &Assignment) -> anyhow::Result<()> {
[INFO] [stdout]   |              ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `ACTIVE_LEASES` is never used
[INFO] [stdout]  --> src/delivery/lease.rs:8:8
[INFO] [stdout]   |
[INFO] [stdout] 8 | static ACTIVE_LEASES: Lazy<DashMap<String, (String, i64)>> = Lazy::new(DashMap::new);
[INFO] [stdout]   |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `GENERATIONS` is never used
[INFO] [stdout]   --> src/delivery/lease.rs:11:8
[INFO] [stdout]    |
[INFO] [stdout] 11 | static GENERATIONS: Lazy<DashMap<String, AtomicI64>> = Lazy::new(DashMap::new);
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `generate_lease` is never used
[INFO] [stdout]   --> src/delivery/lease.rs:14:8
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub fn generate_lease(work_item_id: &str, agent_id: &str) -> Lease {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `validate_lease` is never used
[INFO] [stdout]   --> src/delivery/lease.rs:29:8
[INFO] [stdout]    |
[INFO] [stdout] 29 | pub fn validate_lease(agent_id: &str, assignment_id: &str, generation: i64) -> anyhow::Result<bool> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `increment_generation` is never used
[INFO] [stdout]   --> src/delivery/lease.rs:39:8
[INFO] [stdout]    |
[INFO] [stdout] 39 | pub fn increment_generation(agent_id: &str) -> i64 {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `write_active_md` is never used
[INFO] [stdout]  --> src/delivery/active_md.rs:6:8
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub fn write_active_md(agent: &Agent, assignment: &Assignment, lease: &Lease) -> anyhow::Result<PathBuf> {
[INFO] [stdout]   |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `inject_assignment_notice` is never used
[INFO] [stdout]  --> src/delivery/inject.rs:4:14
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub async fn inject_assignment_notice(pane_id: &str, assignment_id: &str) -> anyhow::Result<()> {
[INFO] [stdout]   |              ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `PendingAck` is never constructed
[INFO] [stdout]   --> src/delivery/ack.rs:12:12
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub struct PendingAck {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `PENDING_ACKS` is never used
[INFO] [stdout]   --> src/delivery/ack.rs:20:12
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub static PENDING_ACKS: Lazy<DashMap<String, PendingAck>> = Lazy::new(DashMap::new);
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `register_pending_ack` is never used
[INFO] [stdout]   --> src/delivery/ack.rs:23:8
[INFO] [stdout]    |
[INFO] [stdout] 23 | pub fn register_pending_ack(assignment_id: &str, agent_id: &str) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `start_ack_timer` is never used
[INFO] [stdout]   --> src/delivery/ack.rs:33:14
[INFO] [stdout]    |
[INFO] [stdout] 33 | pub async fn start_ack_timer(
[INFO] [stdout]    |              ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `retry_injection` is never used
[INFO] [stdout]   --> src/delivery/ack.rs:64:14
[INFO] [stdout]    |
[INFO] [stdout] 64 | pub async fn retry_injection(
[INFO] [stdout]    |              ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `check_ack_received` is never used
[INFO] [stdout]   --> src/delivery/ack.rs:82:8
[INFO] [stdout]    |
[INFO] [stdout] 82 | pub fn check_ack_received(assignment_id: &str) -> bool {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mark_ack_received` is never used
[INFO] [stdout]   --> src/delivery/ack.rs:87:8
[INFO] [stdout]    |
[INFO] [stdout] 87 | pub fn mark_ack_received(assignment_id: &str) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `check_stale_assignments` is never used
[INFO] [stdout]  --> src/delivery/stale.rs:9:14
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub async fn check_stale_assignments(pool: &SqlitePool) -> anyhow::Result<()> {
[INFO] [stdout]   |              ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `active` is never read
[INFO] [stdout]   --> src/queue/manager.rs:12:9
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub struct AgentQueues {
[INFO] [stdout]    |            ----------- field in this struct
[INFO] [stdout] 12 |     pub active: Option<WorkItem>,
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `AgentQueues` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `role_pending`, `role_urgent`, `role_deferred`, and `max_depth` are never read
[INFO] [stdout]   --> src/queue/manager.rs:35:5
[INFO] [stdout]    |
[INFO] [stdout] 34 | pub struct QueueManager {
[INFO] [stdout]    |            ------------ fields in this struct
[INFO] [stdout] 35 |     role_pending: DashMap<String, VecDeque<WorkItem>>,
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout] 36 |     role_urgent: DashMap<String, VecDeque<WorkItem>>,
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 37 |     role_deferred: DashMap<String, VecDeque<WorkItem>>,
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] 38 |     agent_queues: DashMap<String, AgentQueues>,
[INFO] [stdout] 39 |     max_depth: usize,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `QueueManager` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `enqueue`, `dequeue`, `urgent_enqueue`, and `defer` are never used
[INFO] [stdout]    --> src/queue/manager.rs:58:12
[INFO] [stdout]     |
[INFO] [stdout]  42 | impl QueueManager {
[INFO] [stdout]     | ----------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  58 |     pub fn enqueue(&self, work_item: WorkItem) {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  80 |     pub fn dequeue(&self, role: &str) -> Option<WorkItem> {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  89 |     pub fn urgent_enqueue(&self, work_item: WorkItem) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 107 |     pub fn defer(&self, work_item: WorkItem) {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `calculate_load` is never used
[INFO] [stdout]   --> src/queue/scheduler.rs:83:18
[INFO] [stdout]    |
[INFO] [stdout] 20 | impl Scheduler {
[INFO] [stdout]    | -------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 83 |     pub async fn calculate_load(&self, agent_id: &str) -> Result<AgentLoad> {
[INFO] [stdout]    |                  ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `QUEUED_INJECTIONS` is never used
[INFO] [stdout]   --> src/human/mod.rs:18:8
[INFO] [stdout]    |
[INFO] [stdout] 18 | static QUEUED_INJECTIONS: OnceCell<DashMap<String, Vec<String>>> = OnceCell::new();
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `queued_injections` is never used
[INFO] [stdout]   --> src/human/mod.rs:36:15
[INFO] [stdout]    |
[INFO] [stdout] 36 | pub(crate) fn queued_injections() -> &'static DashMap<String, Vec<String>> {
[INFO] [stdout]    |               ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `recover_agent` is never used
[INFO] [stdout]   --> src/human/commands.rs:74:14
[INFO] [stdout]    |
[INFO] [stdout] 74 | pub async fn recover_agent(agent_id: &str) -> Result<()> {
[INFO] [stdout]    |              ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `is_human_active` is never used
[INFO] [stdout]   --> src/human/detect.rs:10:14
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub async fn is_human_active(agent_id: &str) -> Result<bool> {
[INFO] [stdout]    |              ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `detect_keyboard_activity` is never used
[INFO] [stdout]   --> src/human/detect.rs:24:14
[INFO] [stdout]    |
[INFO] [stdout] 24 | pub async fn detect_keyboard_activity(pane_id: &str) -> Result<bool> {
[INFO] [stdout]    |              ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `check_takeover_flag` is never used
[INFO] [stdout]   --> src/human/detect.rs:35:8
[INFO] [stdout]    |
[INFO] [stdout] 35 | pub fn check_takeover_flag(agent_id: &str) -> bool {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `can_inject` is never used
[INFO] [stdout]   --> src/human/safety.rs:13:14
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub async fn can_inject(agent_id: &str) -> Result<bool> {
[INFO] [stdout]    |              ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `safe_inject` is never used
[INFO] [stdout]   --> src/human/safety.rs:41:14
[INFO] [stdout]    |
[INFO] [stdout] 41 | pub async fn safe_inject(agent_id: &str, message: &str) -> Result<()> {
[INFO] [stdout]    |              ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `relaunch_agent` is never used
[INFO] [stdout]  --> src/recovery/agent.rs:9:14
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub async fn relaunch_agent(agent: &Agent, pane_id: &str) -> Result<()> {
[INFO] [stdout]   |              ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `build_agent_command` is never used
[INFO] [stdout]   --> src/recovery/agent.rs:44:8
[INFO] [stdout]    |
[INFO] [stdout] 44 | pub fn build_agent_command(agent_kind: &str, role: &str, session: &str) -> Vec<String> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `inject_recovery_context` is never used
[INFO] [stdout]   --> src/recovery/context.rs:17:14
[INFO] [stdout]    |
[INFO] [stdout] 17 | pub async fn inject_recovery_context(
[INFO] [stdout]    |              ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `capture_transcript_before_death` is never used
[INFO] [stdout]   --> src/recovery/transcript.rs:13:14
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub async fn capture_transcript_before_death(pool: &SqlitePool, agent_id: &str) -> Result<String> {
[INFO] [stdout]    |              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `store_transcript` is never used
[INFO] [stdout]   --> src/recovery/transcript.rs:45:14
[INFO] [stdout]    |
[INFO] [stdout] 45 | pub async fn store_transcript(pool: &SqlitePool, agent_id: &str, content: &str) -> Result<()> {
[INFO] [stdout]    |              ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 1m 17s
[INFO] running `Command { std: "docker" "inspect" "984e1caf2b3fade58d064db33fd8404a6e5781cb266d0310fd63e075922f4e94", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "984e1caf2b3fade58d064db33fd8404a6e5781cb266d0310fd63e075922f4e94", kill_on_drop: false }`
[INFO] [stdout] 984e1caf2b3fade58d064db33fd8404a6e5781cb266d0310fd63e075922f4e94
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+cced03bfd61a304243a34504618ecec86c17063f" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] a5a959f15245a40be5c1a60d1bd73800a84533637b489276fdb612d272e5d902
[INFO] running `Command { std: "docker" "start" "-a" "a5a959f15245a40be5c1a60d1bd73800a84533637b489276fdb612d272e5d902", kill_on_drop: false }`
[INFO] [stderr]    Compiling tokio v1.52.3
[INFO] [stderr]    Compiling tempfile v3.27.0
[INFO] [stderr]    Compiling tokio-util v0.7.18
[INFO] [stderr]    Compiling tokio-stream v0.1.18
[INFO] [stderr]    Compiling sqlx-core v0.8.6
[INFO] [stderr]    Compiling tokio-test v0.4.5
[INFO] [stderr]    Compiling h2 v0.4.14
[INFO] [stderr]    Compiling tower v0.4.13
[INFO] [stderr]    Compiling sqlx-sqlite v0.8.6
[INFO] [stderr]    Compiling hyper v1.9.0
[INFO] [stderr]    Compiling sqlx v0.8.6
[INFO] [stderr]    Compiling hyper-util v0.1.20
[INFO] [stderr]    Compiling hyper-timeout v0.5.2
[INFO] [stderr]    Compiling tonic v0.12.3
[INFO] [stderr]    Compiling lantern v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `std::os::unix::process::CommandExt`
[INFO] [stdout]   --> tests/cli.rs:90:13
[INFO] [stdout]    |
[INFO] [stdout] 90 |         use std::os::unix::process::CommandExt;
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `DeliverResult`, `TranscriptResult`, and `ValidationResult`
[INFO] [stdout]  --> src/temporal/mod.rs:6:22
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub use activities::{DeliverResult, TranscriptResult, ValidationResult};
[INFO] [stdout]   |                      ^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `client::TemporalGrpcClient`
[INFO] [stdout]  --> src/temporal/mod.rs:7:9
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub use client::TemporalGrpcClient;
[INFO] [stdout]   |         ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `error`
[INFO] [stdout]   --> src/temporal/mod.rs:11:15
[INFO] [stdout]    |
[INFO] [stdout] 11 | use tracing::{error, info};
[INFO] [stdout]    |               ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `AgentQueues` and `QueueManager`
[INFO] [stdout]  --> src/queue/mod.rs:5:19
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub use manager::{AgentQueues, QueueManager};
[INFO] [stdout]   |                   ^^^^^^^^^^^  ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `priority::compare_priority`
[INFO] [stdout]  --> src/queue/mod.rs:6:9
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub use priority::compare_priority;
[INFO] [stdout]   |         ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `scheduler::Scheduler`
[INFO] [stdout]  --> src/queue/mod.rs:7:9
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub use scheduler::Scheduler;
[INFO] [stdout]   |         ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `DeliverResult`, `TranscriptResult`, and `ValidationResult`
[INFO] [stdout]  --> src/temporal/mod.rs:6:22
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub use activities::{DeliverResult, TranscriptResult, ValidationResult};
[INFO] [stdout]   |                      ^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `client::TemporalGrpcClient`
[INFO] [stdout]  --> src/temporal/mod.rs:7:9
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub use client::TemporalGrpcClient;
[INFO] [stdout]   |         ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `error`
[INFO] [stdout]   --> src/temporal/mod.rs:11:15
[INFO] [stdout]    |
[INFO] [stdout] 11 | use tracing::{error, info};
[INFO] [stdout]    |               ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `WorkItem`
[INFO] [stdout]    --> src/queue/scheduler.rs:120:31
[INFO] [stdout]     |
[INFO] [stdout] 120 |     use crate::types::{Agent, WorkItem};
[INFO] [stdout]     |                               ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `AgentQueues` and `QueueManager`
[INFO] [stdout]  --> src/queue/mod.rs:5:19
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub use manager::{AgentQueues, QueueManager};
[INFO] [stdout]   |                   ^^^^^^^^^^^  ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `priority::compare_priority`
[INFO] [stdout]  --> src/queue/mod.rs:6:9
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub use priority::compare_priority;
[INFO] [stdout]   |         ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `scheduler::Scheduler`
[INFO] [stdout]  --> src/queue/mod.rs:7:9
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub use scheduler::Scheduler;
[INFO] [stdout]   |         ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/temporal/mod.rs:19:5
[INFO] [stdout]    |
[INFO] [stdout] 19 |     mut shutdown: tokio::sync::watch::Receiver<bool>,
[INFO] [stdout]    |     ----^^^^^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/temporal/mod.rs:19:5
[INFO] [stdout]    |
[INFO] [stdout] 19 |     mut shutdown: tokio::sync::watch::Receiver<bool>,
[INFO] [stdout]    |     ----^^^^^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `AgentStatus` is never used
[INFO] [stdout]  --> src/types.rs:7:10
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub enum AgentStatus {
[INFO] [stdout]   |          ^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `WorkItemStatus` is never used
[INFO] [stdout]   --> src/types.rs:30:10
[INFO] [stdout]    |
[INFO] [stdout] 30 | pub enum WorkItemStatus {
[INFO] [stdout]    |          ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `AgentLoad` is never constructed
[INFO] [stdout]    --> src/types.rs:177:12
[INFO] [stdout]     |
[INFO] [stdout] 177 | pub struct AgentLoad {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `insert_lease` is never used
[INFO] [stdout]   --> src/db/queries.rs:83:14
[INFO] [stdout]    |
[INFO] [stdout] 83 | pub async fn insert_lease(pool: &SqlitePool, lease: &Lease) -> anyhow::Result<()> {
[INFO] [stdout]    |              ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_active_work_for_agent` is never used
[INFO] [stdout]    --> src/db/queries.rs:204:14
[INFO] [stdout]     |
[INFO] [stdout] 204 | pub async fn get_active_work_for_agent(pool: &SqlitePool, agent_id: &str) -> anyhow::Result<Vec<WorkItem>> {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SignalWorkflowExecutionRequest` is never constructed
[INFO] [stdout]    --> src/temporal/client.rs:138:12
[INFO] [stdout]     |
[INFO] [stdout] 138 | pub struct SignalWorkflowExecutionRequest {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SignalWorkflowExecutionResponse` is never constructed
[INFO] [stdout]    --> src/temporal/client.rs:147:12
[INFO] [stdout]     |
[INFO] [stdout] 147 | pub struct SignalWorkflowExecutionResponse {}
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `signal_workflow_execution` is never used
[INFO] [stdout]    --> src/temporal/client.rs:214:18
[INFO] [stdout]     |
[INFO] [stdout] 157 | impl TemporalGrpcClient {
[INFO] [stdout]     | ----------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 214 |     pub async fn signal_workflow_execution(
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `workflow_id_for_session` is never used
[INFO] [stdout]  --> src/temporal/signals.rs:9:4
[INFO] [stdout]   |
[INFO] [stdout] 9 | fn workflow_id_for_session(session_id: &str) -> String {
[INFO] [stdout]   |    ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `send_signal` is never used
[INFO] [stdout]   --> src/temporal/signals.rs:13:10
[INFO] [stdout]    |
[INFO] [stdout] 13 | async fn send_signal(
[INFO] [stdout]    |          ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `signal_assignment_acked` is never used
[INFO] [stdout]   --> src/temporal/signals.rs:40:14
[INFO] [stdout]    |
[INFO] [stdout] 40 | pub async fn signal_assignment_acked(
[INFO] [stdout]    |              ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `signal_assignment_completed` is never used
[INFO] [stdout]   --> src/temporal/signals.rs:57:14
[INFO] [stdout]    |
[INFO] [stdout] 57 | pub async fn signal_assignment_completed(
[INFO] [stdout]    |              ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `signal_assignment_blocked` is never used
[INFO] [stdout]   --> src/temporal/signals.rs:74:14
[INFO] [stdout]    |
[INFO] [stdout] 74 | pub async fn signal_assignment_blocked(
[INFO] [stdout]    |              ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `signal_assignment_stale` is never used
[INFO] [stdout]   --> src/temporal/signals.rs:91:14
[INFO] [stdout]    |
[INFO] [stdout] 91 | pub async fn signal_assignment_stale(
[INFO] [stdout]    |              ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `signal_agent_recovered` is never used
[INFO] [stdout]    --> src/temporal/signals.rs:108:14
[INFO] [stdout]     |
[INFO] [stdout] 108 | pub async fn signal_agent_recovered(
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `kill_session` is never used
[INFO] [stdout]   --> src/tmux/session.rs:25:14
[INFO] [stdout]    |
[INFO] [stdout] 25 | pub async fn kill_session(name: &str) -> Result<()> {
[INFO] [stdout]    |              ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `capture_pane` is never used
[INFO] [stdout]    --> src/tmux/pane.rs:115:14
[INFO] [stdout]     |
[INFO] [stdout] 115 | pub async fn capture_pane(pane_id: &str) -> Result<String> {
[INFO] [stdout]     |              ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `create_squad_layout` is never used
[INFO] [stdout]   --> src/tmux/layout.rs:14:14
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub async fn create_squad_layout(
[INFO] [stdout]    |              ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `split_pane` is never used
[INFO] [stdout]    --> src/tmux/layout.rs:122:10
[INFO] [stdout]     |
[INFO] [stdout] 122 | async fn split_pane(pane_id: &str, direction: &str, percent: Option<u8>) -> Result<String> {
[INFO] [stdout]     |          ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `DeliveryOrchestrator` is never constructed
[INFO] [stdout]   --> src/delivery/mod.rs:21:12
[INFO] [stdout]    |
[INFO] [stdout] 21 | pub struct DeliveryOrchestrator {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `deliver` are never used
[INFO] [stdout]   --> src/delivery/mod.rs:26:12
[INFO] [stdout]    |
[INFO] [stdout] 25 | impl DeliveryOrchestrator {
[INFO] [stdout]    | ------------------------- associated items in this implementation
[INFO] [stdout] 26 |     pub fn new(pool: SqlitePool) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 30 |     pub async fn deliver(&self, assignment: &Assignment, agent: &Agent) -> anyhow::Result<()> {
[INFO] [stdout]    |                  ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `persist_assignment` is never used
[INFO] [stdout]  --> src/delivery/persist.rs:7:14
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub async fn persist_assignment(pool: &SqlitePool, assignment: &Assignment) -> anyhow::Result<()> {
[INFO] [stdout]   |              ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `ACTIVE_LEASES` is never used
[INFO] [stdout]  --> src/delivery/lease.rs:8:8
[INFO] [stdout]   |
[INFO] [stdout] 8 | static ACTIVE_LEASES: Lazy<DashMap<String, (String, i64)>> = Lazy::new(DashMap::new);
[INFO] [stdout]   |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `GENERATIONS` is never used
[INFO] [stdout]   --> src/delivery/lease.rs:11:8
[INFO] [stdout]    |
[INFO] [stdout] 11 | static GENERATIONS: Lazy<DashMap<String, AtomicI64>> = Lazy::new(DashMap::new);
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `generate_lease` is never used
[INFO] [stdout]   --> src/delivery/lease.rs:14:8
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub fn generate_lease(work_item_id: &str, agent_id: &str) -> Lease {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `validate_lease` is never used
[INFO] [stdout]   --> src/delivery/lease.rs:29:8
[INFO] [stdout]    |
[INFO] [stdout] 29 | pub fn validate_lease(agent_id: &str, assignment_id: &str, generation: i64) -> anyhow::Result<bool> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `increment_generation` is never used
[INFO] [stdout]   --> src/delivery/lease.rs:39:8
[INFO] [stdout]    |
[INFO] [stdout] 39 | pub fn increment_generation(agent_id: &str) -> i64 {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `write_active_md` is never used
[INFO] [stdout]  --> src/delivery/active_md.rs:6:8
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub fn write_active_md(agent: &Agent, assignment: &Assignment, lease: &Lease) -> anyhow::Result<PathBuf> {
[INFO] [stdout]   |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `inject_assignment_notice` is never used
[INFO] [stdout]  --> src/delivery/inject.rs:4:14
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub async fn inject_assignment_notice(pane_id: &str, assignment_id: &str) -> anyhow::Result<()> {
[INFO] [stdout]   |              ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `PendingAck` is never constructed
[INFO] [stdout]   --> src/delivery/ack.rs:12:12
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub struct PendingAck {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `PENDING_ACKS` is never used
[INFO] [stdout]   --> src/delivery/ack.rs:20:12
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub static PENDING_ACKS: Lazy<DashMap<String, PendingAck>> = Lazy::new(DashMap::new);
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `register_pending_ack` is never used
[INFO] [stdout]   --> src/delivery/ack.rs:23:8
[INFO] [stdout]    |
[INFO] [stdout] 23 | pub fn register_pending_ack(assignment_id: &str, agent_id: &str) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `start_ack_timer` is never used
[INFO] [stdout]   --> src/delivery/ack.rs:33:14
[INFO] [stdout]    |
[INFO] [stdout] 33 | pub async fn start_ack_timer(
[INFO] [stdout]    |              ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `retry_injection` is never used
[INFO] [stdout]   --> src/delivery/ack.rs:64:14
[INFO] [stdout]    |
[INFO] [stdout] 64 | pub async fn retry_injection(
[INFO] [stdout]    |              ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `check_ack_received` is never used
[INFO] [stdout]   --> src/delivery/ack.rs:82:8
[INFO] [stdout]    |
[INFO] [stdout] 82 | pub fn check_ack_received(assignment_id: &str) -> bool {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mark_ack_received` is never used
[INFO] [stdout]   --> src/delivery/ack.rs:87:8
[INFO] [stdout]    |
[INFO] [stdout] 87 | pub fn mark_ack_received(assignment_id: &str) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `check_stale_assignments` is never used
[INFO] [stdout]  --> src/delivery/stale.rs:9:14
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub async fn check_stale_assignments(pool: &SqlitePool) -> anyhow::Result<()> {
[INFO] [stdout]   |              ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `active` is never read
[INFO] [stdout]   --> src/queue/manager.rs:12:9
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub struct AgentQueues {
[INFO] [stdout]    |            ----------- field in this struct
[INFO] [stdout] 12 |     pub active: Option<WorkItem>,
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `AgentQueues` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `role_pending`, `role_urgent`, `role_deferred`, and `max_depth` are never read
[INFO] [stdout]   --> src/queue/manager.rs:35:5
[INFO] [stdout]    |
[INFO] [stdout] 34 | pub struct QueueManager {
[INFO] [stdout]    |            ------------ fields in this struct
[INFO] [stdout] 35 |     role_pending: DashMap<String, VecDeque<WorkItem>>,
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout] 36 |     role_urgent: DashMap<String, VecDeque<WorkItem>>,
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 37 |     role_deferred: DashMap<String, VecDeque<WorkItem>>,
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] 38 |     agent_queues: DashMap<String, AgentQueues>,
[INFO] [stdout] 39 |     max_depth: usize,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `QueueManager` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `enqueue`, `dequeue`, `urgent_enqueue`, and `defer` are never used
[INFO] [stdout]    --> src/queue/manager.rs:58:12
[INFO] [stdout]     |
[INFO] [stdout]  42 | impl QueueManager {
[INFO] [stdout]     | ----------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  58 |     pub fn enqueue(&self, work_item: WorkItem) {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  80 |     pub fn dequeue(&self, role: &str) -> Option<WorkItem> {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  89 |     pub fn urgent_enqueue(&self, work_item: WorkItem) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 107 |     pub fn defer(&self, work_item: WorkItem) {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `calculate_load` is never used
[INFO] [stdout]   --> src/queue/scheduler.rs:83:18
[INFO] [stdout]    |
[INFO] [stdout] 20 | impl Scheduler {
[INFO] [stdout]    | -------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 83 |     pub async fn calculate_load(&self, agent_id: &str) -> Result<AgentLoad> {
[INFO] [stdout]    |                  ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `QUEUED_INJECTIONS` is never used
[INFO] [stdout]   --> src/human/mod.rs:18:8
[INFO] [stdout]    |
[INFO] [stdout] 18 | static QUEUED_INJECTIONS: OnceCell<DashMap<String, Vec<String>>> = OnceCell::new();
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `queued_injections` is never used
[INFO] [stdout]   --> src/human/mod.rs:36:15
[INFO] [stdout]    |
[INFO] [stdout] 36 | pub(crate) fn queued_injections() -> &'static DashMap<String, Vec<String>> {
[INFO] [stdout]    |               ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `recover_agent` is never used
[INFO] [stdout]   --> src/human/commands.rs:74:14
[INFO] [stdout]    |
[INFO] [stdout] 74 | pub async fn recover_agent(agent_id: &str) -> Result<()> {
[INFO] [stdout]    |              ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `is_human_active` is never used
[INFO] [stdout]   --> src/human/detect.rs:10:14
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub async fn is_human_active(agent_id: &str) -> Result<bool> {
[INFO] [stdout]    |              ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `detect_keyboard_activity` is never used
[INFO] [stdout]   --> src/human/detect.rs:24:14
[INFO] [stdout]    |
[INFO] [stdout] 24 | pub async fn detect_keyboard_activity(pane_id: &str) -> Result<bool> {
[INFO] [stdout]    |              ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `check_takeover_flag` is never used
[INFO] [stdout]   --> src/human/detect.rs:35:8
[INFO] [stdout]    |
[INFO] [stdout] 35 | pub fn check_takeover_flag(agent_id: &str) -> bool {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `can_inject` is never used
[INFO] [stdout]   --> src/human/safety.rs:13:14
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub async fn can_inject(agent_id: &str) -> Result<bool> {
[INFO] [stdout]    |              ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `safe_inject` is never used
[INFO] [stdout]   --> src/human/safety.rs:41:14
[INFO] [stdout]    |
[INFO] [stdout] 41 | pub async fn safe_inject(agent_id: &str, message: &str) -> Result<()> {
[INFO] [stdout]    |              ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `relaunch_agent` is never used
[INFO] [stdout]  --> src/recovery/agent.rs:9:14
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub async fn relaunch_agent(agent: &Agent, pane_id: &str) -> Result<()> {
[INFO] [stdout]   |              ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `build_agent_command` is never used
[INFO] [stdout]   --> src/recovery/agent.rs:44:8
[INFO] [stdout]    |
[INFO] [stdout] 44 | pub fn build_agent_command(agent_kind: &str, role: &str, session: &str) -> Vec<String> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `inject_recovery_context` is never used
[INFO] [stdout]   --> src/recovery/context.rs:17:14
[INFO] [stdout]    |
[INFO] [stdout] 17 | pub async fn inject_recovery_context(
[INFO] [stdout]    |              ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `capture_transcript_before_death` is never used
[INFO] [stdout]   --> src/recovery/transcript.rs:13:14
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub async fn capture_transcript_before_death(pool: &SqlitePool, agent_id: &str) -> Result<String> {
[INFO] [stdout]    |              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `store_transcript` is never used
[INFO] [stdout]   --> src/recovery/transcript.rs:45:14
[INFO] [stdout]    |
[INFO] [stdout] 45 | pub async fn store_transcript(pool: &SqlitePool, agent_id: &str, content: &str) -> Result<()> {
[INFO] [stdout]    |              ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `AgentLoad` is never constructed
[INFO] [stdout]    --> src/types.rs:177:12
[INFO] [stdout]     |
[INFO] [stdout] 177 | pub struct AgentLoad {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_active_work_for_agent` is never used
[INFO] [stdout]    --> src/db/queries.rs:204:14
[INFO] [stdout]     |
[INFO] [stdout] 204 | pub async fn get_active_work_for_agent(pool: &SqlitePool, agent_id: &str) -> anyhow::Result<Vec<WorkItem>> {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SignalWorkflowExecutionRequest` is never constructed
[INFO] [stdout]    --> src/temporal/client.rs:138:12
[INFO] [stdout]     |
[INFO] [stdout] 138 | pub struct SignalWorkflowExecutionRequest {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SignalWorkflowExecutionResponse` is never constructed
[INFO] [stdout]    --> src/temporal/client.rs:147:12
[INFO] [stdout]     |
[INFO] [stdout] 147 | pub struct SignalWorkflowExecutionResponse {}
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `signal_workflow_execution` is never used
[INFO] [stdout]    --> src/temporal/client.rs:214:18
[INFO] [stdout]     |
[INFO] [stdout] 157 | impl TemporalGrpcClient {
[INFO] [stdout]     | ----------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 214 |     pub async fn signal_workflow_execution(
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `workflow_id_for_session` is never used
[INFO] [stdout]  --> src/temporal/signals.rs:9:4
[INFO] [stdout]   |
[INFO] [stdout] 9 | fn workflow_id_for_session(session_id: &str) -> String {
[INFO] [stdout]   |    ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `send_signal` is never used
[INFO] [stdout]   --> src/temporal/signals.rs:13:10
[INFO] [stdout]    |
[INFO] [stdout] 13 | async fn send_signal(
[INFO] [stdout]    |          ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `signal_assignment_acked` is never used
[INFO] [stdout]   --> src/temporal/signals.rs:40:14
[INFO] [stdout]    |
[INFO] [stdout] 40 | pub async fn signal_assignment_acked(
[INFO] [stdout]    |              ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `signal_assignment_completed` is never used
[INFO] [stdout]   --> src/temporal/signals.rs:57:14
[INFO] [stdout]    |
[INFO] [stdout] 57 | pub async fn signal_assignment_completed(
[INFO] [stdout]    |              ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `signal_assignment_blocked` is never used
[INFO] [stdout]   --> src/temporal/signals.rs:74:14
[INFO] [stdout]    |
[INFO] [stdout] 74 | pub async fn signal_assignment_blocked(
[INFO] [stdout]    |              ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `signal_assignment_stale` is never used
[INFO] [stdout]   --> src/temporal/signals.rs:91:14
[INFO] [stdout]    |
[INFO] [stdout] 91 | pub async fn signal_assignment_stale(
[INFO] [stdout]    |              ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `signal_agent_recovered` is never used
[INFO] [stdout]    --> src/temporal/signals.rs:108:14
[INFO] [stdout]     |
[INFO] [stdout] 108 | pub async fn signal_agent_recovered(
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `kill_session` is never used
[INFO] [stdout]   --> src/tmux/session.rs:25:14
[INFO] [stdout]    |
[INFO] [stdout] 25 | pub async fn kill_session(name: &str) -> Result<()> {
[INFO] [stdout]    |              ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `capture_pane` is never used
[INFO] [stdout]    --> src/tmux/pane.rs:115:14
[INFO] [stdout]     |
[INFO] [stdout] 115 | pub async fn capture_pane(pane_id: &str) -> Result<String> {
[INFO] [stdout]     |              ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `create_squad_layout` is never used
[INFO] [stdout]   --> src/tmux/layout.rs:14:14
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub async fn create_squad_layout(
[INFO] [stdout]    |              ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `split_pane` is never used
[INFO] [stdout]    --> src/tmux/layout.rs:122:10
[INFO] [stdout]     |
[INFO] [stdout] 122 | async fn split_pane(pane_id: &str, direction: &str, percent: Option<u8>) -> Result<String> {
[INFO] [stdout]     |          ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `DeliveryOrchestrator` is never constructed
[INFO] [stdout]   --> src/delivery/mod.rs:21:12
[INFO] [stdout]    |
[INFO] [stdout] 21 | pub struct DeliveryOrchestrator {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `deliver` are never used
[INFO] [stdout]   --> src/delivery/mod.rs:26:12
[INFO] [stdout]    |
[INFO] [stdout] 25 | impl DeliveryOrchestrator {
[INFO] [stdout]    | ------------------------- associated items in this implementation
[INFO] [stdout] 26 |     pub fn new(pool: SqlitePool) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 30 |     pub async fn deliver(&self, assignment: &Assignment, agent: &Agent) -> anyhow::Result<()> {
[INFO] [stdout]    |                  ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `persist_assignment` is never used
[INFO] [stdout]  --> src/delivery/persist.rs:7:14
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub async fn persist_assignment(pool: &SqlitePool, assignment: &Assignment) -> anyhow::Result<()> {
[INFO] [stdout]   |              ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `write_active_md` is never used
[INFO] [stdout]  --> src/delivery/active_md.rs:6:8
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub fn write_active_md(agent: &Agent, assignment: &Assignment, lease: &Lease) -> anyhow::Result<PathBuf> {
[INFO] [stdout]   |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `inject_assignment_notice` is never used
[INFO] [stdout]  --> src/delivery/inject.rs:4:14
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub async fn inject_assignment_notice(pane_id: &str, assignment_id: &str) -> anyhow::Result<()> {
[INFO] [stdout]   |              ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `PendingAck` is never constructed
[INFO] [stdout]   --> src/delivery/ack.rs:12:12
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub struct PendingAck {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `PENDING_ACKS` is never used
[INFO] [stdout]   --> src/delivery/ack.rs:20:12
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub static PENDING_ACKS: Lazy<DashMap<String, PendingAck>> = Lazy::new(DashMap::new);
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `register_pending_ack` is never used
[INFO] [stdout]   --> src/delivery/ack.rs:23:8
[INFO] [stdout]    |
[INFO] [stdout] 23 | pub fn register_pending_ack(assignment_id: &str, agent_id: &str) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `start_ack_timer` is never used
[INFO] [stdout]   --> src/delivery/ack.rs:33:14
[INFO] [stdout]    |
[INFO] [stdout] 33 | pub async fn start_ack_timer(
[INFO] [stdout]    |              ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `retry_injection` is never used
[INFO] [stdout]   --> src/delivery/ack.rs:64:14
[INFO] [stdout]    |
[INFO] [stdout] 64 | pub async fn retry_injection(
[INFO] [stdout]    |              ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `check_ack_received` is never used
[INFO] [stdout]   --> src/delivery/ack.rs:82:8
[INFO] [stdout]    |
[INFO] [stdout] 82 | pub fn check_ack_received(assignment_id: &str) -> bool {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mark_ack_received` is never used
[INFO] [stdout]   --> src/delivery/ack.rs:87:8
[INFO] [stdout]    |
[INFO] [stdout] 87 | pub fn mark_ack_received(assignment_id: &str) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `check_stale_assignments` is never used
[INFO] [stdout]  --> src/delivery/stale.rs:9:14
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub async fn check_stale_assignments(pool: &SqlitePool) -> anyhow::Result<()> {
[INFO] [stdout]   |              ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `active` is never read
[INFO] [stdout]   --> src/queue/manager.rs:12:9
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub struct AgentQueues {
[INFO] [stdout]    |            ----------- field in this struct
[INFO] [stdout] 12 |     pub active: Option<WorkItem>,
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `AgentQueues` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `calculate_load` is never used
[INFO] [stdout]   --> src/queue/scheduler.rs:83:18
[INFO] [stdout]    |
[INFO] [stdout] 20 | impl Scheduler {
[INFO] [stdout]    | -------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 83 |     pub async fn calculate_load(&self, agent_id: &str) -> Result<AgentLoad> {
[INFO] [stdout]    |                  ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `QUEUED_INJECTIONS` is never used
[INFO] [stdout]   --> src/human/mod.rs:18:8
[INFO] [stdout]    |
[INFO] [stdout] 18 | static QUEUED_INJECTIONS: OnceCell<DashMap<String, Vec<String>>> = OnceCell::new();
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `queued_injections` is never used
[INFO] [stdout]   --> src/human/mod.rs:36:15
[INFO] [stdout]    |
[INFO] [stdout] 36 | pub(crate) fn queued_injections() -> &'static DashMap<String, Vec<String>> {
[INFO] [stdout]    |               ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `recover_agent` is never used
[INFO] [stdout]   --> src/human/commands.rs:74:14
[INFO] [stdout]    |
[INFO] [stdout] 74 | pub async fn recover_agent(agent_id: &str) -> Result<()> {
[INFO] [stdout]    |              ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `is_human_active` is never used
[INFO] [stdout]   --> src/human/detect.rs:10:14
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub async fn is_human_active(agent_id: &str) -> Result<bool> {
[INFO] [stdout]    |              ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `detect_keyboard_activity` is never used
[INFO] [stdout]   --> src/human/detect.rs:24:14
[INFO] [stdout]    |
[INFO] [stdout] 24 | pub async fn detect_keyboard_activity(pane_id: &str) -> Result<bool> {
[INFO] [stdout]    |              ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `check_takeover_flag` is never used
[INFO] [stdout]   --> src/human/detect.rs:35:8
[INFO] [stdout]    |
[INFO] [stdout] 35 | pub fn check_takeover_flag(agent_id: &str) -> bool {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `can_inject` is never used
[INFO] [stdout]   --> src/human/safety.rs:13:14
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub async fn can_inject(agent_id: &str) -> Result<bool> {
[INFO] [stdout]    |              ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `safe_inject` is never used
[INFO] [stdout]   --> src/human/safety.rs:41:14
[INFO] [stdout]    |
[INFO] [stdout] 41 | pub async fn safe_inject(agent_id: &str, message: &str) -> Result<()> {
[INFO] [stdout]    |              ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `relaunch_agent` is never used
[INFO] [stdout]  --> src/recovery/agent.rs:9:14
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub async fn relaunch_agent(agent: &Agent, pane_id: &str) -> Result<()> {
[INFO] [stdout]   |              ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `build_agent_command` is never used
[INFO] [stdout]   --> src/recovery/agent.rs:44:8
[INFO] [stdout]    |
[INFO] [stdout] 44 | pub fn build_agent_command(agent_kind: &str, role: &str, session: &str) -> Vec<String> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `inject_recovery_context` is never used
[INFO] [stdout]   --> src/recovery/context.rs:17:14
[INFO] [stdout]    |
[INFO] [stdout] 17 | pub async fn inject_recovery_context(
[INFO] [stdout]    |              ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `capture_transcript_before_death` is never used
[INFO] [stdout]   --> src/recovery/transcript.rs:13:14
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub async fn capture_transcript_before_death(pool: &SqlitePool, agent_id: &str) -> Result<String> {
[INFO] [stdout]    |              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `store_transcript` is never used
[INFO] [stdout]   --> src/recovery/transcript.rs:45:14
[INFO] [stdout]    |
[INFO] [stdout] 45 | pub async fn store_transcript(pool: &SqlitePool, agent_id: &str, content: &str) -> Result<()> {
[INFO] [stdout]    |              ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 44.62s
[INFO] running `Command { std: "docker" "inspect" "a5a959f15245a40be5c1a60d1bd73800a84533637b489276fdb612d272e5d902", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "a5a959f15245a40be5c1a60d1bd73800a84533637b489276fdb612d272e5d902", kill_on_drop: false }`
[INFO] [stdout] a5a959f15245a40be5c1a60d1bd73800a84533637b489276fdb612d272e5d902
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+cced03bfd61a304243a34504618ecec86c17063f" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] abb7b36a69d5404bcb100dc98c2479ddd4748394a4bf617409056f81d89fcb70
[INFO] running `Command { std: "docker" "start" "-a" "abb7b36a69d5404bcb100dc98c2479ddd4748394a4bf617409056f81d89fcb70", kill_on_drop: false }`
[INFO] [stderr] warning: unused imports: `DeliverResult`, `TranscriptResult`, and `ValidationResult`
[INFO] [stderr]  --> src/temporal/mod.rs:6:22
[INFO] [stderr]   |
[INFO] [stderr] 6 | pub use activities::{DeliverResult, TranscriptResult, ValidationResult};
[INFO] [stderr]   |                      ^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `client::TemporalGrpcClient`
[INFO] [stderr]  --> src/temporal/mod.rs:7:9
[INFO] [stderr]   |
[INFO] [stderr] 7 | pub use client::TemporalGrpcClient;
[INFO] [stderr]   |         ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `error`
[INFO] [stderr]   --> src/temporal/mod.rs:11:15
[INFO] [stderr]    |
[INFO] [stderr] 11 | use tracing::{error, info};
[INFO] [stderr]    |               ^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `WorkItem`
[INFO] [stderr]    --> src/queue/scheduler.rs:120:31
[INFO] [stderr]     |
[INFO] [stderr] 120 |     use crate::types::{Agent, WorkItem};
[INFO] [stderr]     |                               ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `AgentQueues` and `QueueManager`
[INFO] [stderr]  --> src/queue/mod.rs:5:19
[INFO] [stderr]   |
[INFO] [stderr] 5 | pub use manager::{AgentQueues, QueueManager};
[INFO] [stderr]   |                   ^^^^^^^^^^^  ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `priority::compare_priority`
[INFO] [stderr]  --> src/queue/mod.rs:6:9
[INFO] [stderr]   |
[INFO] [stderr] 6 | pub use priority::compare_priority;
[INFO] [stderr]   |         ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `scheduler::Scheduler`
[INFO] [stderr]  --> src/queue/mod.rs:7:9
[INFO] [stderr]   |
[INFO] [stderr] 7 | pub use scheduler::Scheduler;
[INFO] [stderr]   |         ^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]   --> src/temporal/mod.rs:19:5
[INFO] [stderr]    |
[INFO] [stderr] 19 |     mut shutdown: tokio::sync::watch::Receiver<bool>,
[INFO] [stderr]    |     ----^^^^^^^^
[INFO] [stderr]    |     |
[INFO] [stderr]    |     help: remove this `mut`
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: struct `AgentLoad` is never constructed
[INFO] [stderr]    --> src/types.rs:177:12
[INFO] [stderr]     |
[INFO] [stderr] 177 | pub struct AgentLoad {
[INFO] [stderr]     |            ^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: function `get_active_work_for_agent` is never used
[INFO] [stderr]    --> src/db/queries.rs:204:14
[INFO] [stderr]     |
[INFO] [stderr] 204 | pub async fn get_active_work_for_agent(pool: &SqlitePool, agent_id: &str) -> anyhow::Result<Vec<WorkItem>> {
[INFO] [stderr]     |              ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `SignalWorkflowExecutionRequest` is never constructed
[INFO] [stderr]    --> src/temporal/client.rs:138:12
[INFO] [stderr]     |
[INFO] [stderr] 138 | pub struct SignalWorkflowExecutionRequest {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `SignalWorkflowExecutionResponse` is never constructed
[INFO] [stderr]    --> src/temporal/client.rs:147:12
[INFO] [stderr]     |
[INFO] [stderr] 147 | pub struct SignalWorkflowExecutionResponse {}
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: method `signal_workflow_execution` is never used
[INFO] [stderr]    --> src/temporal/client.rs:214:18
[INFO] [stderr]     |
[INFO] [stderr] 157 | impl TemporalGrpcClient {
[INFO] [stderr]     | ----------------------- method in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 214 |     pub async fn signal_workflow_execution(
[INFO] [stderr]     |                  ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `workflow_id_for_session` is never used
[INFO] [stderr]  --> src/temporal/signals.rs:9:4
[INFO] [stderr]   |
[INFO] [stderr] 9 | fn workflow_id_for_session(session_id: &str) -> String {
[INFO] [stderr]   |    ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `send_signal` is never used
[INFO] [stderr]   --> src/temporal/signals.rs:13:10
[INFO] [stderr]    |
[INFO] [stderr] 13 | async fn send_signal(
[INFO] [stderr]    |          ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `signal_assignment_acked` is never used
[INFO] [stderr]   --> src/temporal/signals.rs:40:14
[INFO] [stderr]    |
[INFO] [stderr] 40 | pub async fn signal_assignment_acked(
[INFO] [stderr]    |              ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `signal_assignment_completed` is never used
[INFO] [stderr]   --> src/temporal/signals.rs:57:14
[INFO] [stderr]    |
[INFO] [stderr] 57 | pub async fn signal_assignment_completed(
[INFO] [stderr]    |              ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `signal_assignment_blocked` is never used
[INFO] [stderr]   --> src/temporal/signals.rs:74:14
[INFO] [stderr]    |
[INFO] [stderr] 74 | pub async fn signal_assignment_blocked(
[INFO] [stderr]    |              ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `signal_assignment_stale` is never used
[INFO] [stderr]   --> src/temporal/signals.rs:91:14
[INFO] [stderr]    |
[INFO] [stderr] 91 | pub async fn signal_assignment_stale(
[INFO] [stderr]    |              ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `signal_agent_recovered` is never used
[INFO] [stderr]    --> src/temporal/signals.rs:108:14
[INFO] [stderr]     |
[INFO] [stderr] 108 | pub async fn signal_agent_recovered(
[INFO] [stderr]     |              ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `kill_session` is never used
[INFO] [stderr]   --> src/tmux/session.rs:25:14
[INFO] [stderr]    |
[INFO] [stderr] 25 | pub async fn kill_session(name: &str) -> Result<()> {
[INFO] [stderr]    |              ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `capture_pane` is never used
[INFO] [stderr]    --> src/tmux/pane.rs:115:14
[INFO] [stderr]     |
[INFO] [stderr] 115 | pub async fn capture_pane(pane_id: &str) -> Result<String> {
[INFO] [stderr]     |              ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `create_squad_layout` is never used
[INFO] [stderr]   --> src/tmux/layout.rs:14:14
[INFO] [stderr]    |
[INFO] [stderr] 14 | pub async fn create_squad_layout(
[INFO] [stderr]    |              ^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `split_pane` is never used
[INFO] [stderr]    --> src/tmux/layout.rs:122:10
[INFO] [stderr]     |
[INFO] [stderr] 122 | async fn split_pane(pane_id: &str, direction: &str, percent: Option<u8>) -> Result<String> {
[INFO] [stderr]     |          ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `DeliveryOrchestrator` is never constructed
[INFO] [stderr]   --> src/delivery/mod.rs:21:12
[INFO] [stderr]    |
[INFO] [stderr] 21 | pub struct DeliveryOrchestrator {
[INFO] [stderr]    |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated items `new` and `deliver` are never used
[INFO] [stderr]   --> src/delivery/mod.rs:26:12
[INFO] [stderr]    |
[INFO] [stderr] 25 | impl DeliveryOrchestrator {
[INFO] [stderr]    | ------------------------- associated items in this implementation
[INFO] [stderr] 26 |     pub fn new(pool: SqlitePool) -> Self {
[INFO] [stderr]    |            ^^^
[INFO] [stderr] ...
[INFO] [stderr] 30 |     pub async fn deliver(&self, assignment: &Assignment, agent: &Agent) -> anyhow::Result<()> {
[INFO] [stderr]    |                  ^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `persist_assignment` is never used
[INFO] [stderr]  --> src/delivery/persist.rs:7:14
[INFO] [stderr]   |
[INFO] [stderr] 7 | pub async fn persist_assignment(pool: &SqlitePool, assignment: &Assignment) -> anyhow::Result<()> {
[INFO] [stderr]   |              ^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `write_active_md` is never used
[INFO] [stderr]  --> src/delivery/active_md.rs:6:8
[INFO] [stderr]   |
[INFO] [stderr] 6 | pub fn write_active_md(agent: &Agent, assignment: &Assignment, lease: &Lease) -> anyhow::Result<PathBuf> {
[INFO] [stderr]   |        ^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `inject_assignment_notice` is never used
[INFO] [stderr]  --> src/delivery/inject.rs:4:14
[INFO] [stderr]   |
[INFO] [stderr] 4 | pub async fn inject_assignment_notice(pane_id: &str, assignment_id: &str) -> anyhow::Result<()> {
[INFO] [stderr]   |              ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `PendingAck` is never constructed
[INFO] [stderr]   --> src/delivery/ack.rs:12:12
[INFO] [stderr]    |
[INFO] [stderr] 12 | pub struct PendingAck {
[INFO] [stderr]    |            ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: static `PENDING_ACKS` is never used
[INFO] [stderr]   --> src/delivery/ack.rs:20:12
[INFO] [stderr]    |
[INFO] [stderr] 20 | pub static PENDING_ACKS: Lazy<DashMap<String, PendingAck>> = Lazy::new(DashMap::new);
[INFO] [stderr]    |            ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `register_pending_ack` is never used
[INFO] [stderr]   --> src/delivery/ack.rs:23:8
[INFO] [stderr]    |
[INFO] [stderr] 23 | pub fn register_pending_ack(assignment_id: &str, agent_id: &str) {
[INFO] [stderr]    |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `start_ack_timer` is never used
[INFO] [stderr]   --> src/delivery/ack.rs:33:14
[INFO] [stderr]    |
[INFO] [stderr] 33 | pub async fn start_ack_timer(
[INFO] [stderr]    |              ^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `retry_injection` is never used
[INFO] [stderr]   --> src/delivery/ack.rs:64:14
[INFO] [stderr]    |
[INFO] [stderr] 64 | pub async fn retry_injection(
[INFO] [stderr]    |              ^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `check_ack_received` is never used
[INFO] [stderr]   --> src/delivery/ack.rs:82:8
[INFO] [stderr]    |
[INFO] [stderr] 82 | pub fn check_ack_received(assignment_id: &str) -> bool {
[INFO] [stderr]    |        ^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `mark_ack_received` is never used
[INFO] [stderr]   --> src/delivery/ack.rs:87:8
[INFO] [stderr]    |
[INFO] [stderr] 87 | pub fn mark_ack_received(assignment_id: &str) {
[INFO] [stderr]    |        ^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `check_stale_assignments` is never used
[INFO] [stderr]  --> src/delivery/stale.rs:9:14
[INFO] [stderr]   |
[INFO] [stderr] 9 | pub async fn check_stale_assignments(pool: &SqlitePool) -> anyhow::Result<()> {
[INFO] [stderr]   |              ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: field `active` is never read
[INFO] [stderr]   --> src/queue/manager.rs:12:9
[INFO] [stderr]    |
[INFO] [stderr] 11 | pub struct AgentQueues {
[INFO] [stderr]    |            ----------- field in this struct
[INFO] [stderr] 12 |     pub active: Option<WorkItem>,
[INFO] [stderr]    |         ^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `AgentQueues` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: method `calculate_load` is never used
[INFO] [stderr]   --> src/queue/scheduler.rs:83:18
[INFO] [stderr]    |
[INFO] [stderr] 20 | impl Scheduler {
[INFO] [stderr]    | -------------- method in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 83 |     pub async fn calculate_load(&self, agent_id: &str) -> Result<AgentLoad> {
[INFO] [stderr]    |                  ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: static `QUEUED_INJECTIONS` is never used
[INFO] [stderr]   --> src/human/mod.rs:18:8
[INFO] [stderr]    |
[INFO] [stderr] 18 | static QUEUED_INJECTIONS: OnceCell<DashMap<String, Vec<String>>> = OnceCell::new();
[INFO] [stderr]    |        ^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `queued_injections` is never used
[INFO] [stderr]   --> src/human/mod.rs:36:15
[INFO] [stderr]    |
[INFO] [stderr] 36 | pub(crate) fn queued_injections() -> &'static DashMap<String, Vec<String>> {
[INFO] [stderr]    |               ^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `recover_agent` is never used
[INFO] [stderr]   --> src/human/commands.rs:74:14
[INFO] [stderr]    |
[INFO] [stderr] 74 | pub async fn recover_agent(agent_id: &str) -> Result<()> {
[INFO] [stderr]    |              ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `is_human_active` is never used
[INFO] [stderr]   --> src/human/detect.rs:10:14
[INFO] [stderr]    |
[INFO] [stderr] 10 | pub async fn is_human_active(agent_id: &str) -> Result<bool> {
[INFO] [stderr]    |              ^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `detect_keyboard_activity` is never used
[INFO] [stderr]   --> src/human/detect.rs:24:14
[INFO] [stderr]    |
[INFO] [stderr] 24 | pub async fn detect_keyboard_activity(pane_id: &str) -> Result<bool> {
[INFO] [stderr]    |              ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `check_takeover_flag` is never used
[INFO] [stderr]   --> src/human/detect.rs:35:8
[INFO] [stderr]    |
[INFO] [stderr] 35 | pub fn check_takeover_flag(agent_id: &str) -> bool {
[INFO] [stderr]    |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `can_inject` is never used
[INFO] [stderr]   --> src/human/safety.rs:13:14
[INFO] [stderr]    |
[INFO] [stderr] 13 | pub async fn can_inject(agent_id: &str) -> Result<bool> {
[INFO] [stderr]    |              ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `safe_inject` is never used
[INFO] [stderr]   --> src/human/safety.rs:41:14
[INFO] [stderr]    |
[INFO] [stderr] 41 | pub async fn safe_inject(agent_id: &str, message: &str) -> Result<()> {
[INFO] [stderr]    |              ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `relaunch_agent` is never used
[INFO] [stderr]  --> src/recovery/agent.rs:9:14
[INFO] [stderr]   |
[INFO] [stderr] 9 | pub async fn relaunch_agent(agent: &Agent, pane_id: &str) -> Result<()> {
[INFO] [stderr]   |              ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `build_agent_command` is never used
[INFO] [stderr]   --> src/recovery/agent.rs:44:8
[INFO] [stderr]    |
[INFO] [stderr] 44 | pub fn build_agent_command(agent_kind: &str, role: &str, session: &str) -> Vec<String> {
[INFO] [stderr]    |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `inject_recovery_context` is never used
[INFO] [stderr]   --> src/recovery/context.rs:17:14
[INFO] [stderr]    |
[INFO] [stderr] 17 | pub async fn inject_recovery_context(
[INFO] [stderr]    |              ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `capture_transcript_before_death` is never used
[INFO] [stderr]   --> src/recovery/transcript.rs:13:14
[INFO] [stderr]    |
[INFO] [stderr] 13 | pub async fn capture_transcript_before_death(pool: &SqlitePool, agent_id: &str) -> Result<String> {
[INFO] [stderr]    |              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `store_transcript` is never used
[INFO] [stderr]   --> src/recovery/transcript.rs:45:14
[INFO] [stderr]    |
[INFO] [stderr] 45 | pub async fn store_transcript(pool: &SqlitePool, agent_id: &str, content: &str) -> Result<()> {
[INFO] [stderr]    |              ^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `std::os::unix::process::CommandExt`
[INFO] [stderr]   --> tests/cli.rs:90:13
[INFO] [stderr]    |
[INFO] [stderr] 90 |         use std::os::unix::process::CommandExt;
[INFO] [stderr]    |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: enum `AgentStatus` is never used
[INFO] [stderr]  --> src/types.rs:7:10
[INFO] [stderr]   |
[INFO] [stderr] 7 | pub enum AgentStatus {
[INFO] [stderr]   |          ^^^^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: enum `WorkItemStatus` is never used
[INFO] [stderr]   --> src/types.rs:30:10
[INFO] [stderr]    |
[INFO] [stderr] 30 | pub enum WorkItemStatus {
[INFO] [stderr]    |          ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `AgentLoad` is never constructed
[INFO] [stderr]    --> src/types.rs:177:12
[INFO] [stderr]     |
[INFO] [stderr] 177 | pub struct AgentLoad {
[INFO] [stderr]     |            ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `insert_lease` is never used
[INFO] [stderr]   --> src/db/queries.rs:83:14
[INFO] [stderr]    |
[INFO] [stderr] 83 | pub async fn insert_lease(pool: &SqlitePool, lease: &Lease) -> anyhow::Result<()> {
[INFO] [stderr]    |              ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: static `ACTIVE_LEASES` is never used
[INFO] [stderr]  --> src/delivery/lease.rs:8:8
[INFO] [stderr]   |
[INFO] [stderr] 8 | static ACTIVE_LEASES: Lazy<DashMap<String, (String, i64)>> = Lazy::new(DashMap::new);
[INFO] [stderr]   |        ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: static `GENERATIONS` is never used
[INFO] [stderr]   --> src/delivery/lease.rs:11:8
[INFO] [stderr]    |
[INFO] [stderr] 11 | static GENERATIONS: Lazy<DashMap<String, AtomicI64>> = Lazy::new(DashMap::new);
[INFO] [stderr]    |        ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `generate_lease` is never used
[INFO] [stderr]   --> src/delivery/lease.rs:14:8
[INFO] [stderr]    |
[INFO] [stderr] 14 | pub fn generate_lease(work_item_id: &str, agent_id: &str) -> Lease {
[INFO] [stderr]    |        ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `validate_lease` is never used
[INFO] [stderr]   --> src/delivery/lease.rs:29:8
[INFO] [stderr]    |
[INFO] [stderr] 29 | pub fn validate_lease(agent_id: &str, assignment_id: &str, generation: i64) -> anyhow::Result<bool> {
[INFO] [stderr]    |        ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `increment_generation` is never used
[INFO] [stderr]   --> src/delivery/lease.rs:39:8
[INFO] [stderr]    |
[INFO] [stderr] 39 | pub fn increment_generation(agent_id: &str) -> i64 {
[INFO] [stderr]    |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: fields `role_pending`, `role_urgent`, `role_deferred`, and `max_depth` are never read
[INFO] [stderr]   --> src/queue/manager.rs:35:5
[INFO] [stderr]    |
[INFO] [stderr] 34 | pub struct QueueManager {
[INFO] [stderr]    |            ------------ fields in this struct
[INFO] [stderr] 35 |     role_pending: DashMap<String, VecDeque<WorkItem>>,
[INFO] [stderr]    |     ^^^^^^^^^^^^
[INFO] [stderr] 36 |     role_urgent: DashMap<String, VecDeque<WorkItem>>,
[INFO] [stderr]    |     ^^^^^^^^^^^
[INFO] [stderr] 37 |     role_deferred: DashMap<String, VecDeque<WorkItem>>,
[INFO] [stderr]    |     ^^^^^^^^^^^^^
[INFO] [stderr] 38 |     agent_queues: DashMap<String, AgentQueues>,
[INFO] [stderr] 39 |     max_depth: usize,
[INFO] [stderr]    |     ^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `QueueManager` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: methods `enqueue`, `dequeue`, `urgent_enqueue`, and `defer` are never used
[INFO] [stderr]    --> src/queue/manager.rs:58:12
[INFO] [stderr]     |
[INFO] [stderr]  42 | impl QueueManager {
[INFO] [stderr]     | ----------------- methods in this implementation
[INFO] [stderr] ...
[INFO] [stderr]  58 |     pub fn enqueue(&self, work_item: WorkItem) {
[INFO] [stderr]     |            ^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr]  80 |     pub fn dequeue(&self, role: &str) -> Option<WorkItem> {
[INFO] [stderr]     |            ^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr]  89 |     pub fn urgent_enqueue(&self, work_item: WorkItem) {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 107 |     pub fn defer(&self, work_item: WorkItem) {
[INFO] [stderr]     |            ^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: `lantern` (bin "lantern" test) generated 52 warnings (run `cargo fix --bin "lantern" -p lantern --tests` to apply 8 suggestions)
[INFO] [stderr] warning: `lantern` (test "cli") generated 1 warning (run `cargo fix --test "cli" -p lantern` to apply 1 suggestion)
[INFO] [stderr] warning: `lantern` (bin "lantern") generated 61 warnings (50 duplicates)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.53s
[INFO] [stderr]      Running unittests src/main.rs (/opt/rustwide/target/debug/deps/lantern-126a71bb7e628c4b)
[INFO] [stdout] 
[INFO] [stdout] running 38 tests
[INFO] [stdout] test config::tests::test_default_config ... ok
[INFO] [stdout] test config::tests::test_config_merge_empty_fields ... ok
[INFO] [stdout] test delivery::lease::tests::test_lease_has_expiry ... ok
[INFO] [stdout] test delivery::lease::tests::test_validate_lease_success ... ok
[INFO] [stdout] test delivery::lease::tests::test_validate_lease_unknown_agent ... ok
[INFO] [stdout] test delivery::lease::tests::test_increment_generation_is_monotonic ... ok
[INFO] [stdout] test delivery::lease::tests::test_validate_lease_wrong_generation ... ok
[INFO] [stdout] test queue::manager::tests::test_defer_work_item ... ok
[INFO] [stdout] test queue::manager::tests::test_enqueue_to_agent_queue ... ok
[INFO] [stdout] test delivery::lease::tests::test_validate_lease_wrong_assignment ... ok
[INFO] [stdout] test delivery::lease::tests::test_generate_lease_increments_generation ... ok
[INFO] [stdout] test delivery::lease::tests::test_generate_lease_different_agents ... ok
[INFO] [stdout] test queue::priority::tests::test_high_over_normal ... ok
[INFO] [stdout] test queue::priority::tests::test_urgent_over_high ... ok
[INFO] [stdout] test queue::manager::tests::test_queue_depth_empty ... ok
[INFO] [stdout] test queue::priority::tests::test_normal_over_low ... ok
[INFO] [stdout] test queue::manager::tests::test_max_depth_warning ... ok
[INFO] [stdout] test queue::priority::tests::test_older_first_within_same_priority ... ok
[INFO] [stdout] test queue::manager::tests::test_urgent_enqueue_agent ... ok
[INFO] [stdout] test types::tests::test_agent_status_display ... ok
[INFO] [stdout] test types::tests::test_generate_id_format ... ok
[INFO] [stdout] test types::tests::test_generate_id_uniqueness ... ok
[INFO] [stdout] test types::tests::test_work_item_status_display ... ok
[INFO] [stdout] test queue::scheduler::tests::test_is_agent_available_busy ... ok
[INFO] [stdout] test db::queries::tests::test_log_event ... ok
[INFO] [stdout] test db::queries::tests::test_insert_and_get_machine ... ok
[INFO] [stdout] test queue::manager::tests::test_enqueue_to_role_queue ... ok
[INFO] [stdout] test db::queries::tests::test_insert_and_get_agent ... ok
[INFO] [stdout] test db::queries::tests::test_insert_and_get_lease ... ok
[INFO] [stdout] test queue::scheduler::tests::test_find_eligible_agent_filters_by_role ... ok
[INFO] [stdout] test db::queries::tests::test_get_idle_agents_by_role ... ok
[INFO] [stdout] test db::queries::tests::test_insert_and_get_work_item ... ok
[INFO] [stdout] test db::queries::tests::test_insert_and_get_session ... ok
[INFO] [stdout] test db::queries::tests::test_update_work_item_status ... ok
[INFO] [stdout] test queue::scheduler::tests::test_is_agent_available_idle ... ok
[INFO] [stdout] test queue::scheduler::tests::test_find_eligible_agent_none_available ... ok
[INFO] [stdout] test queue::scheduler::tests::test_find_eligible_agent_skips_busy ... ok
[INFO] [stdout] test db::queries::tests::test_update_agent_status ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 38 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.11s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/cli.rs (/opt/rustwide/target/debug/deps/cli-e8d7d100d0dc707b)
[INFO] [stdout] 
[INFO] [stdout] running 4 tests
[INFO] [stdout] test test_cli_version ... ok
[INFO] [stdout] test test_cli_help ... ok
[INFO] [stdout] test test_status_command ... FAILED
[INFO] [stderr] error: test failed, to rerun pass `--test cli`
[INFO] [stdout] test test_relay_daemon_starts ... ok
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout] 
[INFO] [stdout] ---- test_status_command stdout ----
[INFO] [stdout] 
[INFO] [stdout] thread 'test_status_command' (165) panicked at tests/cli.rs:46:5:
[INFO] [stdout] lantern status failed
[INFO] [stdout] stack backtrace:
[INFO] [stdout]    0:     0x5c7ca7cf47d8 - std[929523f510218772]::backtrace_rs::backtrace::libunwind::trace
[INFO] [stdout]                                at /rustc/cced03bfd61a304243a34504618ecec86c17063f/library/std/src/../../backtrace/src/backtrace/libunwind.rs:117:9
[INFO] [stdout]    1:     0x5c7ca7cf47d8 - std[929523f510218772]::backtrace_rs::backtrace::trace_unsynchronized::<std[929523f510218772]::sys::backtrace::_print_fmt::{closure#1}>
[INFO] [stdout]                                at /rustc/cced03bfd61a304243a34504618ecec86c17063f/library/std/src/../../backtrace/src/backtrace/mod.rs:66:14
[INFO] [stdout]    2:     0x5c7ca7cf47d8 - std[929523f510218772]::sys::backtrace::_print_fmt
[INFO] [stdout]                                at /rustc/cced03bfd61a304243a34504618ecec86c17063f/library/std/src/sys/backtrace.rs:74:9
[INFO] [stdout]    3:     0x5c7ca7cf47d8 - <<std[929523f510218772]::sys::backtrace::BacktraceLock>::print::DisplayBacktrace as core[28b146924c2f19c6]::fmt::Display>::fmt
[INFO] [stdout]                                at /rustc/cced03bfd61a304243a34504618ecec86c17063f/library/std/src/sys/backtrace.rs:44:26
[INFO] [stdout]    4:     0x5c7ca7d0870a - <core[28b146924c2f19c6]::fmt::rt::Argument>::fmt
[INFO] [stdout]                                at /rustc/cced03bfd61a304243a34504618ecec86c17063f/library/core/src/fmt/rt.rs:152:76
[INFO] [stdout]    5:     0x5c7ca7d0870a - core[28b146924c2f19c6]::fmt::write
[INFO] [stdout]    6:     0x5c7ca7cf9042 - std[929523f510218772]::io::default_write_fmt::<alloc[95e62e727ddf147d]::vec::Vec<u8>>
[INFO] [stdout]                                at /rustc/cced03bfd61a304243a34504618ecec86c17063f/library/std/src/io/mod.rs:622:11
[INFO] [stdout]    7:     0x5c7ca7cf9042 - <alloc[95e62e727ddf147d]::vec::Vec<u8> as std[929523f510218772]::io::Write>::write_fmt
[INFO] [stdout]                                at /rustc/cced03bfd61a304243a34504618ecec86c17063f/library/std/src/io/mod.rs:1977:13
[INFO] [stdout]    8:     0x5c7ca7cd33e6 - <std[929523f510218772]::sys::backtrace::BacktraceLock>::print
[INFO] [stdout]                                at /rustc/cced03bfd61a304243a34504618ecec86c17063f/library/std/src/sys/backtrace.rs:47:9
[INFO] [stdout]    9:     0x5c7ca7cd33e6 - std[929523f510218772]::panicking::default_hook::{closure#0}
[INFO] [stdout]                                at /rustc/cced03bfd61a304243a34504618ecec86c17063f/library/std/src/panicking.rs:292:27
[INFO] [stdout]   10:     0x5c7ca7cecc69 - std[929523f510218772]::panicking::default_hook
[INFO] [stdout]                                at /rustc/cced03bfd61a304243a34504618ecec86c17063f/library/std/src/panicking.rs:316:9
[INFO] [stdout]   11:     0x5c7ca7c887ec - <alloc[95e62e727ddf147d]::boxed::Box<dyn for<'a, 'b> core[28b146924c2f19c6]::ops::function::Fn<(&'a std[929523f510218772]::panic::PanicHookInfo<'b>,), Output = ()> + core[28b146924c2f19c6]::marker::Sync + core[28b146924c2f19c6]::marker::Send> as core[28b146924c2f19c6]::ops::function::Fn<(&std[929523f510218772]::panic::PanicHookInfo,)>>::call
[INFO] [stdout]                                at /rustc/cced03bfd61a304243a34504618ecec86c17063f/library/alloc/src/boxed.rs:2291:9
[INFO] [stdout]   12:     0x5c7ca7c887ec - test[6ec0502068880816]::test_main_inner::<test[6ec0502068880816]::test_main_static::{closure#0}>::{closure#0}
[INFO] [stdout]                                at /rustc/cced03bfd61a304243a34504618ecec86c17063f/library/test/src/lib.rs:155:21
[INFO] [stdout]   13:     0x5c7ca7cece22 - <alloc[95e62e727ddf147d]::boxed::Box<dyn for<'a, 'b> core[28b146924c2f19c6]::ops::function::Fn<(&'a std[929523f510218772]::panic::PanicHookInfo<'b>,), Output = ()> + core[28b146924c2f19c6]::marker::Sync + core[28b146924c2f19c6]::marker::Send> as core[28b146924c2f19c6]::ops::function::Fn<(&std[929523f510218772]::panic::PanicHookInfo,)>>::call
[INFO] [stdout]                                at /rustc/cced03bfd61a304243a34504618ecec86c17063f/library/alloc/src/boxed.rs:2291:9
[INFO] [stdout]   14:     0x5c7ca7cece22 - std[929523f510218772]::panicking::panic_with_hook
[INFO] [stdout]                                at /rustc/cced03bfd61a304243a34504618ecec86c17063f/library/std/src/panicking.rs:833:13
[INFO] [stdout]   15:     0x5c7ca7cd34d4 - std[929523f510218772]::panicking::panic_handler::{closure#0}
[INFO] [stdout]                                at /rustc/cced03bfd61a304243a34504618ecec86c17063f/library/std/src/panicking.rs:691:13
[INFO] [stdout]   16:     0x5c7ca7cc86a9 - std[929523f510218772]::sys::backtrace::__rust_end_short_backtrace::<std[929523f510218772]::panicking::panic_handler::{closure#0}, !>
[INFO] [stdout]                                at /rustc/cced03bfd61a304243a34504618ecec86c17063f/library/std/src/sys/backtrace.rs:182:18
[INFO] [stdout]   17:     0x5c7ca7cd41bd - __rustc[acf6043c977865fb]::rust_begin_unwind
[INFO] [stdout]                                at /rustc/cced03bfd61a304243a34504618ecec86c17063f/library/std/src/panicking.rs:689:5
[INFO] [stdout]   18:     0x5c7ca7d08dfc - core[28b146924c2f19c6]::panicking::panic_fmt
[INFO] [stdout]                                at /rustc/cced03bfd61a304243a34504618ecec86c17063f/library/core/src/panicking.rs:80:14
[INFO] [stdout]   19:     0x5c7ca7c7554b - cli[6703e0d06048d5ab]::test_status_command
[INFO] [stdout]                                at /opt/rustwide/workdir/tests/cli.rs:46:5
[INFO] [stdout]   20:     0x5c7ca7c74687 - cli[6703e0d06048d5ab]::test_status_command::{closure#0}
[INFO] [stdout]                                at /opt/rustwide/workdir/tests/cli.rs:40:25
[INFO] [stdout]   21:     0x5c7ca7c7b3b6 - <cli[6703e0d06048d5ab]::test_status_command::{closure#0} as core[28b146924c2f19c6]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/cced03bfd61a304243a34504618ecec86c17063f/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   22:     0x5c7ca7c7b8cb - <fn() -> core[28b146924c2f19c6]::result::Result<(), alloc[95e62e727ddf147d]::string::String> as core[28b146924c2f19c6]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/cced03bfd61a304243a34504618ecec86c17063f/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   23:     0x5c7ca7c7b8cb - test[6ec0502068880816]::__rust_begin_short_backtrace::<core[28b146924c2f19c6]::result::Result<(), alloc[95e62e727ddf147d]::string::String>, fn() -> core[28b146924c2f19c6]::result::Result<(), alloc[95e62e727ddf147d]::string::String>>
[INFO] [stdout]                                at /rustc/cced03bfd61a304243a34504618ecec86c17063f/library/test/src/lib.rs:724:18
[INFO] [stdout]   24:     0x5c7ca7c89145 - test[6ec0502068880816]::run_test_in_process::{closure#0}
[INFO] [stdout]                                at /rustc/cced03bfd61a304243a34504618ecec86c17063f/library/test/src/lib.rs:747:74
[INFO] [stdout]   25:     0x5c7ca7c89145 - <core[28b146924c2f19c6]::panic::unwind_safe::AssertUnwindSafe<test[6ec0502068880816]::run_test_in_process::{closure#0}> as core[28b146924c2f19c6]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/cced03bfd61a304243a34504618ecec86c17063f/library/core/src/panic/unwind_safe.rs:275:9
[INFO] [stdout]   26:     0x5c7ca7c89145 - std[929523f510218772]::panicking::catch_unwind::do_call::<core[28b146924c2f19c6]::panic::unwind_safe::AssertUnwindSafe<test[6ec0502068880816]::run_test_in_process::{closure#0}>, core[28b146924c2f19c6]::result::Result<(), alloc[95e62e727ddf147d]::string::String>>
[INFO] [stdout]                                at /rustc/cced03bfd61a304243a34504618ecec86c17063f/library/std/src/panicking.rs:581:40
[INFO] [stdout]   27:     0x5c7ca7c89145 - std[929523f510218772]::panicking::catch_unwind::<core[28b146924c2f19c6]::result::Result<(), alloc[95e62e727ddf147d]::string::String>, core[28b146924c2f19c6]::panic::unwind_safe::AssertUnwindSafe<test[6ec0502068880816]::run_test_in_process::{closure#0}>>
[INFO] [stdout]                                at /rustc/cced03bfd61a304243a34504618ecec86c17063f/library/std/src/panicking.rs:544:19
[INFO] [stdout]   28:     0x5c7ca7c89145 - std[929523f510218772]::panic::catch_unwind::<core[28b146924c2f19c6]::panic::unwind_safe::AssertUnwindSafe<test[6ec0502068880816]::run_test_in_process::{closure#0}>, core[28b146924c2f19c6]::result::Result<(), alloc[95e62e727ddf147d]::string::String>>
[INFO] [stdout]                                at /rustc/cced03bfd61a304243a34504618ecec86c17063f/library/std/src/panic.rs:359:14
[INFO] [stdout]   29:     0x5c7ca7c89145 - test[6ec0502068880816]::run_test_in_process
[INFO] [stdout]                                at /rustc/cced03bfd61a304243a34504618ecec86c17063f/library/test/src/lib.rs:747:27
[INFO] [stdout]   30:     0x5c7ca7c89145 - test[6ec0502068880816]::run_test::{closure#0}
[INFO] [stdout]                                at /rustc/cced03bfd61a304243a34504618ecec86c17063f/library/test/src/lib.rs:668:43
[INFO] [stdout]   31:     0x5c7ca7c83ca4 - test[6ec0502068880816]::run_test::{closure#1}
[INFO] [stdout]                                at /rustc/cced03bfd61a304243a34504618ecec86c17063f/library/test/src/lib.rs:698:41
[INFO] [stdout]   32:     0x5c7ca7c83ca4 - std[929523f510218772]::sys::backtrace::__rust_begin_short_backtrace::<test[6ec0502068880816]::run_test::{closure#1}, ()>
[INFO] [stdout]                                at /rustc/cced03bfd61a304243a34504618ecec86c17063f/library/std/src/sys/backtrace.rs:166:18
[INFO] [stdout]   33:     0x5c7ca7c8c1c2 - std[929523f510218772]::thread::lifecycle::spawn_unchecked::<test[6ec0502068880816]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}
[INFO] [stdout]                                at /rustc/cced03bfd61a304243a34504618ecec86c17063f/library/std/src/thread/lifecycle.rs:70:13
[INFO] [stdout]   34:     0x5c7ca7c8c1c2 - <core[28b146924c2f19c6]::panic::unwind_safe::AssertUnwindSafe<std[929523f510218772]::thread::lifecycle::spawn_unchecked<test[6ec0502068880816]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}> as core[28b146924c2f19c6]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/cced03bfd61a304243a34504618ecec86c17063f/library/core/src/panic/unwind_safe.rs:275:9
[INFO] [stdout]   35:     0x5c7ca7c8c1c2 - std[929523f510218772]::panicking::catch_unwind::do_call::<core[28b146924c2f19c6]::panic::unwind_safe::AssertUnwindSafe<std[929523f510218772]::thread::lifecycle::spawn_unchecked<test[6ec0502068880816]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>, ()>
[INFO] [stdout]                                at /rustc/cced03bfd61a304243a34504618ecec86c17063f/library/std/src/panicking.rs:581:40
[INFO] [stdout]   36:     0x5c7ca7c8c1c2 - std[929523f510218772]::panicking::catch_unwind::<(), core[28b146924c2f19c6]::panic::unwind_safe::AssertUnwindSafe<std[929523f510218772]::thread::lifecycle::spawn_unchecked<test[6ec0502068880816]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>>
[INFO] [stdout]                                at /rustc/cced03bfd61a304243a34504618ecec86c17063f/library/std/src/panicking.rs:544:19
[INFO] [stdout]   37:     0x5c7ca7c8c1c2 - std[929523f510218772]::panic::catch_unwind::<core[28b146924c2f19c6]::panic::unwind_safe::AssertUnwindSafe<std[929523f510218772]::thread::lifecycle::spawn_unchecked<test[6ec0502068880816]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>, ()>
[INFO] [stdout]                                at /rustc/cced03bfd61a304243a34504618ecec86c17063f/library/std/src/panic.rs:359:14
[INFO] [stdout]   38:     0x5c7ca7c8c1c2 - std[929523f510218772]::thread::lifecycle::spawn_unchecked::<test[6ec0502068880816]::run_test::{closure#1}, ()>::{closure#1}
[INFO] [stdout]                                at /rustc/cced03bfd61a304243a34504618ecec86c17063f/library/std/src/thread/lifecycle.rs:68:26
[INFO] [stdout]   39:     0x5c7ca7c8c1c2 - <std[929523f510218772]::thread::lifecycle::spawn_unchecked<test[6ec0502068880816]::run_test::{closure#1}, ()>::{closure#1} as core[28b146924c2f19c6]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
[INFO] [stdout]                                at /rustc/cced03bfd61a304243a34504618ecec86c17063f/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   40:     0x5c7ca7cf413f - <alloc[95e62e727ddf147d]::boxed::Box<dyn core[28b146924c2f19c6]::ops::function::FnOnce<(), Output = ()> + core[28b146924c2f19c6]::marker::Send> as core[28b146924c2f19c6]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/cced03bfd61a304243a34504618ecec86c17063f/library/alloc/src/boxed.rs:2277:9
[INFO] [stdout]   41:     0x5c7ca7cf413f - <std[929523f510218772]::sys::thread::unix::Thread>::new::thread_start
[INFO] [stdout]                                at /rustc/cced03bfd61a304243a34504618ecec86c17063f/library/std/src/sys/thread/unix.rs:118:17
[INFO] [stdout]   42:     0x7977efce2aa4 - <unknown>
[INFO] [stdout]   43:     0x7977efd6fa64 - clone
[INFO] [stdout]   44:                0x0 - <unknown>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout]     test_status_command
[INFO] [stdout] 
[INFO] [stdout] test result: FAILED. 3 passed; 1 failed; 0 ignored; 0 measured; 0 filtered out; finished in 2.01s
[INFO] [stdout] 
[INFO] running `Command { std: "docker" "inspect" "abb7b36a69d5404bcb100dc98c2479ddd4748394a4bf617409056f81d89fcb70", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "abb7b36a69d5404bcb100dc98c2479ddd4748394a4bf617409056f81d89fcb70", kill_on_drop: false }`
[INFO] [stdout] abb7b36a69d5404bcb100dc98c2479ddd4748394a4bf617409056f81d89fcb70
